package net.hn.hnms.biz.equipment.service;

import net.hn.hnms.biz.api.feign.model.DataStateVo;
import net.hn.hnms.biz.api.mine.model.AlarmMessageItemVo;
import net.hn.hnms.biz.api.mine.model.FanSystemVolumeAndSpeedDto;
import net.hn.hnms.biz.equipment.domain.CoalMineSysPointPo;
import net.hn.hnms.biz.equipment.domain.dto.ProductionStatementDto;
import net.hn.hnms.biz.equipment.domain.vo.*;
import net.hn.hnms.biz.equipment.domain.vo.*;

import java.util.List;
import java.util.Map;

/**
 * Author: PanSX
 * Date: 2022/8/13 14:47
 */
public interface EquipmentService {
    /**
     * 重大设备实时数据
     *
     * @param equType
     * @param apiPage
     * @return
     */
    Map queryCurrentByEquType(String equType, String apiPage, String mineCode);

    /**
     * 开关状态查询
     *
     * @return
     */
    List<EquipmentSwitchVo> equipmentSwitch();

    List<EquipmentSwitchVo> equipmentSwitchByMineCode(String mineCode);

    /**
     * 支架压力图表
     *
     * @return
     */
    ChartVo zjylChart(String mineCode);

    /**
     * 某种设备的启停结果
     *
     * @param equipmentType
     * @param apiPage
     * @return
     */
    List<CoalMineSysPointPo> getStartStopByEquipment(String equipmentType, String apiPage);

    /**
     * 实时报警情况
     *
     * @param equipmentType
     * @return
     */
    List<AlarmMessageItemVo> alarmMessageItem(String equipmentType);


    /**
     * 当月每日按设备开机率
     *
     * @return
     */
    ChartOperationRateVO operationRate();

    /**
     * 采割高度图表
     *
     * @return
     */
    ChartCggdVO cggdChart(String mineCode);

    MiningChartVO miningChart(String mineCode);

 /**
  * 最新数据
  * @param mineCode
  * @param companyCode
  * @return
  */
    List<DataStateVo> getMaxTime(String mineCode, String companyCode,String sysName);

    /**
     * 生产报表-根据生产设备类型获取生产报表
     * @param productionStatementDto
     * @return
     */
    List<ProductionStatementVo> getProductionStatementBydeviceType(ProductionStatementDto productionStatementDto);

    List<FanSystemVolumeAndSpeedDto> getFanSystemVolumeAndSpeedList(String mineCode);
}
